/**
 * @param {number} n
 * @param {number} k
 * @return {number[][]}
 */

const combine = function (n, k) {
    const path = []; //存放单个组合的一维数组
const result = []; //存放所有组合结果的二维数组
  function backtracking(startIndex) {
    debugger
    for (let i = startIndex; i <= n; i++) {
      path.push(i);
      if (path.length === k) {
        result.push([...path]);
        path.pop(); 
      } else {
        backtracking(i + 1);
      }
    }   
    path.pop()
  }
  backtracking(1);      
  return result;
};
const a =combine(4, 2); 
console.log(a);
// 每一次执行递归函数，都会执行一个for循环，
